It is common for two or more color output devices to be used in a system network configuration where they are interconnected for exchanging color images and/or data. In these configurations, it is often necessary to obtain a color match between all of the color output devices (e.g., color video monitors, color printers, etc.), particularly when a given color image is being processed by two or more of the color output devices. It may also be necessary for the colors that are displayed on the color output devices to match the colors that are produced by a color printer which is also coupled to the color output devices.
The range of color output of each color output device is called the "color gamut" and may be represented as an n-dimensional device-dependent color space where each dimension represents one of the principle colors of the space. For example, in a three-dimensional RGB color space the red (R), green (G), or blue (B) primary colors form a rectilinear coordinate system from which the color output of a color output device can be described. Each of the colors which can be produced by a particular color output device are represented by a point in the color gamut, and points outside the color gamut represent colors which cannot be produced by that particular color output device.
The problem of color matching can be understood using the individual color gamuts of a population of color output devices, for example VGA color monitors. Each color monitor has three electron guns, with each gun corresponding to one of the above primary colors and which stimulate red, green, and blue display phosphors to generate corresponding luminance values that are combined to produce a desired output color. The luminance of each primary color is determined by the intensity of stimulation of the phosphor which in theory can vary continuously from zero to some maximum value. However, in practice the luminance is quantized into a number of discrete levels and each level is encoded using a digital code. The digital luminance codes are stored in a computer memory and are used to control the intensity of stimulation by each electron gun.
The luminance for each electron gun of a particular color monitor can be measured using a photodetector, and a curve representing the relationship between the luminance value of the primary color generated by a particular gun and the digital code for that luminance value can be plotted. Using three such curves (one for each primary color), the color gamut for that color monitor can be obtained. The process can be repeated for each member of a population of color monitors to obtain similar luminance versus digital code curves and color gamuts for each color monitor. These color gamuts can then be compared to determine the relative range of color output for each monitor.
For example, to measure the luminance versus digital code curves of the population of color monitors having 64 color quantization levels (e.g. 6 bits per color per pixel), the contrast adjustment of each monitor is set to the maximum luminance (e.g., digital code=63). More specifically, the output color luminance at a maximum digital code of R=63, G=63, B=63 is set equal to a constant luminance such as 25 ft-lamberts. In this case, referring to FIG. 1, all color monitors of the population will have luminance versus digital code values which fall within a "white band" 11, with the corresponding red, green, and blue curves respectively falling within green band 14, red band 16 and blue band 18.
As further illustrated in FIG. 1, the red, green, and blue color bands 14, 16, and 18 of the population of color monitors are "fan shaped," as indicated by the spread 20 at digital code equal to 63. Further, if the green luminance versus digital code curve for a particular color monitor falls in the high side of the green band, the red luminance versus digital code curve for that color monitor will tend to fall in the low side of the red band. A different color monitor may have the opposite red and green curve characteristics. These differences in the luminance versus digital code characteristics cause color shifts to occur, even among color monitors of the same manufacturer and same model, making the achievement of a color match between the monitors difficult or impossible.
A comparison of the color gamuts of a population of color output devices will demonstrate three fundamental problems in achieving a color match between corresponding color output devices. First, different types of color output devices may require color spaces having different bases or dimensions. For example, the three-dimensional RGB color space is useful for color monitors since each of the three parameters corresponds to the physical mechanism by which the monitor generates the color. Similarly, the four-dimensional CMYK color space represents color using four parameters C, M, Y, K. In the case of printers there are three and sometimes four colorants, cyan, magenta, yellow and sometimes black. This notation is commonly used by printing devices since each parameter C,M,Y, and K determines the amount of a colorant (e.g. ink or dye) used by the printer in producing a desired color. Thus, in order to achieve a color match between different types of color output devices, their color gamuts must be transformed to a device-independent color space.
Second, even among a population of color output devices of the same type and whose color gamuts can be represented in the same color space, the relative size and/or shape of each color gamut will be different, indicating different ranges of color output capability. The areas where the color gamuts overlap indicate ranges of color output which can be achieved by each color monitor, while areas of non-overlap indicate areas which cannot be achieved by all of the monitors.
Third, even among color gamuts of the same size and shape, the distribution of color points within each color gamut will be different. Specifically, the color points within each color gamut are distributed in a non-uniform manner so that there will still be subtle differences in color forgiven point within the gamut of the monitors.
The second and third color matching problems can be understood by referring again to the luminance value versus binary code value curves of FIG. 1. Recall that each curve is a plot of luminance value versus digital code for a primary color of the color monitor. Although the digital code is the key independent variable used to select the luminance of the primary color, the color is also a function of several other variables which are not user or system controllable. For example, the age and type of phosphor, the age of the electron gun, and the individual component tolerances all affect the luminance values. Thus, as shown in FIG. 1, each curve will generally have a different overall slope resulting in a different maximum luminance value, and will be non-linear so that, although the digital codes are uniformly distributed, the corresponding luminance values will be non-uniformly distributed.
The present invention discloses a novel method and apparatus for transforming the device-dependent color gamuts of a population of color output devices to a device-independent color space, thus providing color matching between the color output devices.